In computing environments it is generally desirable to conserve scarce CPU resources. For some such environments, such as networks of application server nodes, such conservation is especially critical. As networks become faster, they make greater demands on CPUs to process packets and perform I/O operations, resulting in slower application performance. This is particularly detrimental for inherently I/O-intensive applications like databases.
One approach to remedying this problem is to offload excessive I/O and network processing from the CPU. In a networked environment, using distributed file systems and transport protocols like NFS or SMB/CIFS, it is possible to send I/O requests from a local machine to a remote machine. However, it is not necessarily the case that the local machine will achieve significant processing economies using such approaches.
In the single machine context, I/O processing burdens can be alleviated by offloading I/O tasks to a direct memory access (DMA) controller. Remote Direct Memory Access (RDMA) technology is a more recently-developed extension of DMA for multiple networked computers. RDMA allows data to be moved between memory buffers on two communicating machines equipped with RDMA-capable network interface cards (NICs) without having to involve the CPU and operating system of either the source or the destination machine. RDMA can be used to offload I/O processing to a remote machine, thereby enabling the local machine to reclaim CPU cycles for applications. RDMA has been exploited in high-speed, high-bandwidth interconnect technologies, such as the Virtual Interface Architecture (VIA), InfiniBand, and iWarp. These interconnects are particularly designed for high-reliability network connections between clusters of server nodes within a data center or other local file-sharing environment.
Protocols defining the communication between a local offloading node and a remote machine must be designed in order for the capabilities associated with RDMA technology to be fully utilized and their benefits effectively achieved. Therefore, there is a need for the lightweight input/output (LWIO) protocol of the present invention.